昨天講到為什麼要使用self-attention,今天稍微來介紹一下self-attention的架構
昨天提到的問題,解決問題的方法就是self-attention
self-attention就是把每一個vector的input丟進self-attention中,input幾個vector,就會輸出幾個vector,這個方法跟昨天提到的方法不同的地方是,每一個輸出的vector,都是考慮到所有輸入的vector
全連接層跟self-attention是可以交疊使用的,可以讓self-attention處理全部的資訊,利用全連接層處理個別的資訊
那self-attention是怎麼處理全部的資訊的呢?
從這張圖可以看到每一個輸出的vector都是有接收到輸入vector的資訊
如果只是這樣不就只是一個很大的全連接層了嗎?
接下來就要講到跟全連接層不同的地方
一開始我們會根據a1這個項目來找到哪幾個項目是和a1相關的,關聯的程度用alpha來決定,那self-attention是怎麼算出alpha的呢?
這邊有講到兩個方法做計算
將兩個vector分別乘上不同的矩陣,再將相乘過後的結果做內積
第二個方法是把兩個乘上矩陣後的vector相加,經過Activation Functions,再經過一層transform,最後輸入alpha,但是這邊只會考慮到dot-product這個方法
知道計算方法後實際的情況是怎麼樣了,這部份明天再繼續講